﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Hiro.Interfaces
{
    /// <summary>
    /// Represents a service that can be instantiated by a compiled container instance.
    /// </summary>
    public interface IService
    {
        /// <summary>
        /// Gets the value indicating the <see cref="IDependency"/> that can be instantiated by
        /// the <see cref="ActivationPoint"/>.
        /// </summary>
        /// <value>An <see cref="IDependency"/> object instance.</value>
        IDependency TargetDependency { get; }

        /// <summary>
        /// Gets the value indicating the <see cref="IActivationPoint"/> that will be used to
        /// instantiate the <see cref="TargetDependency"/>.
        /// </summary>
        /// <value>An <see cref="IActivationPoint"/> object instance.</value>
        IActivationPoint ActivationPoint { get; }
    }
}
